package cn.tedu.scalaimplicit

/**
 * @author Amos
 * @date 2022/5/18
 */

object ImplicitFuncTest {
  def main(args: Array[String]): Unit = {
    val pig = new Pig("小猪佩奇")
    pig.fly()
  }
  // 隐式转换的方法，将pig转换为Bird
  implicit def pigToBird(pig:Pig):Bird={
    new Bird(pig.name)
  }

}

class Bird(name:String) {
  def fly(): Unit = {
    println(s"${name}可以自由的飞翔")
  }
}

// 这里必须要有var或者val，否则pig.name 获取不到名字，val还可以通过pig.name赋值
class Pig(val name:String)